Feedback k domácím projektům

Jde tento kód napsat jednodušeji, aby ale dělal úplně totéž?


In [ ]:
for radek in range(4):
  radek += 1
  for value in range(radek):
    print('X', end=' ')
  print('')

Ano, lze :-)


In [ ]:
for radek in range(1, 5):
  print('X ' * radek)

A co tento?


In [ ]:
promenna = "X"

for j in range(5):
    for i in promenna:
        print(i, i, i, i, i)

Ten taky


In [ ]:
for j in range(5):
    print('X ' * 5)

Nejmenší číslo

Upovídané řešení z domácích projektů


In [ ]:
prve = input('Zadej cislo: ')
druhe = input('Zadej cislo: ')
tretie = input('Zadej cislo: ')
stvrte = input('Zadej cislo: ')
piate = input('Zadej cislo: ')

if prve<druhe and prve<tretie and prve<stvrte and prve<piate:                    
    print(prve)                                                                  
if druhe<prve and druhe<tretie and druhe<stvrte and druhe<piate:                 
    print(druhe)                                                                 
if tretie<prve and tretie<druhe and tretie<stvrte and tretie<piate:              
    print(tretie)                                                                
if stvrte<prve and stvrte<druhe and stvrte<tretie and stvrte<piate:              
    print(stvrte)                                                                
if piate<prve and piate<druhe and piate<tretie and piate<stvrte:                 
    print(piate)

Lepší, ale pořád ne optimální


In [ ]:
a = float(input('Prvni cislo: '))
b = float(input('Druhe cislo: '))
c = float(input('Treti cislo: '))
d = float(input('Ctrvte cislo: '))
e = float(input('Pate cislo: '))


m = a

for cislo in a, b, c, d, e:
  if cislo < m:
      m=cislo
print(m)

Kratší a méně náročné řešení


In [ ]:
minimum = 0
for x in range(5):
    cislo = int(input('Zadej cislo: '))
    
    if minimum == 0 or cislo < minimum:
        minimum = cislo

print('Nejmensi zadane cislo je', minimum)

N-úhelníky v řadě

Upovídané řešení z domácích projektů


In [ ]:
from turtle import forward, shape, left, right, exitonclick, penup, pendown, back

# pětiúhelník:
vnitrniuhel = 180*(1-(2/5))
vnejsiuhel= 180-vnitrniuhel
for x in range (5):
    forward(200/5)
    left(vnejsiuhel)
penup()
forward(100)
pendown()

# šestiúhelník:
vnitrniuhel = 180*(1-(2/6))
vnejsiuhel= 180-vnitrniuhel
for x in range (6):
    forward(200/6)
    left(vnejsiuhel)
penup()
forward(100)
pendown()

# sedmiúhelník:
vnitrniuhel = 180*(1-(2/7))
vnejsiuhel= 180-vnitrniuhel
for x in range (7):
    forward(200/7)
    left(vnejsiuhel)
penup()
forward(100)
pendown()

# osmiúhelník:
vnitrniuhel = 180*(1-(2/8))
vnejsiuhel= 180-vnitrniuhel
for x in range (8):
    forward(200/8)
    left(vnejsiuhel)
exitonclick()

Kratší řešení s využitím cyklu v dalším cyklu


In [ ]:
from turtle import forward, shape, left, right, exitonclick, penup, pendown, back

for n in range(5,9):
    vnitrniuhel = 180*(1-(2/n))
    vnejsiuhel= 180-vnitrniuhel
    for x in range (n):
        forward(200/n)
        left(vnejsiuhel)
    penup()
    forward(100)
    pendown()

exitonclick()

Obecné připomínky a rady

  • Importy provádíme vždy na prvních řádcích programu a v rámci programu pouze jednou.
  • Snažíme se nepoužívat importy s hvězdičkou.
  • Neimportujeme nic co pak v programu nepoužijeme.
  • Kód nemusí být elegantní, hlavně když funguje (alespoň pro začátek).
  • Komentáře je lepší a jednodušší psát nad nebo pod kód místo vedle něj. Obzvlášť pokud má komentovaná část kódu několik řádků.
  • Pochvala za funkce.
  • Když odevzdáváte soubor s funkcemi, je třeba je v rámci souboru také zavolat, jinak se po jeho spuštění nic nestane.
  • Martin děkuje všem, kteří zrychlili želvičku.

Děkujeme za PyBeer


In [1]:
#            #####   ##   #######
#         ############################
#        #############################
#      #################################
#       |                             |___________
#       |    (   )   (   )   (   )    |________  /
#       |    )   (   )   (   )   (    |       / /
#       |    (   )   (   )   (   )    |      / /
#       |    )   (   )   (   )   (    |     / /
#       |    (   )   (   )   (   )    |____/ /
#       |    )   (   )   (   )   (    |_____/
#       |    (___)   (___)   (___)    |
#       |                             |
#       |_____________________________|